
#include "line.h"

using namespace espreso;

bool Line::gpw(int order, std::vector<double> &r, std::vector<double> &w)
{
	switch (order) {
	case  0:
	case  1:
		r.resize(1), w.resize(1);
		r[ 0] =  0.0                                 ;   w[ 0] =  2.0                                 ;
		break;

	case  2:
	case  3:
		r.resize(2), w.resize(2);
		r[ 0] = -0.57735026918962576450914878050196  ;   w[ 0] =  1.0                                 ;
		r[ 1] =  0.57735026918962576450914878050196  ;   w[ 1] =  1.0                                 ;
		break;

	case  4:
	case  5:
		r.resize(3), w.resize(3);
		r[ 0] = -0.77459666924148337703585307995648  ;   w[ 0] =  0.55555555555555555555555555555556  ;
		r[ 1] =  0.0                                 ;   w[ 1] =  0.88888888888888888888888888888889  ;
		r[ 2] =  0.77459666924148337703585307995648  ;   w[ 2] =  0.55555555555555555555555555555556  ;
		break;

	case  6:
	case  7:
		r.resize(4), w.resize(4);
		r[ 0] = -0.86113631159405257522394648889281  ;   w[ 0] =  0.347854845137453857373063949222    ;
		r[ 1] = -0.33998104358485626480266575910324  ;   w[ 1] =  0.652145154862546142626936050778    ;
		r[ 2] =  0.33998104358485626480266575910324  ;   w[ 2] =  0.652145154862546142626936050778    ;
		r[ 3] =  0.86113631159405257522394648889281  ;   w[ 3] =  0.347854845137453857373063949222    ;
		break;

	case  8:
	case  9:
		r.resize(5), w.resize(5);
		r[ 0] = -0.90617984593866399279762687829939  ;   w[ 0] =  0.23692688505618908751426404071992  ;
		r[ 1] = -0.53846931010568309103631442070021  ;   w[ 1] =  0.47862867049936646804129151483564  ;
		r[ 2] =  0.0                                 ;   w[ 2] =  0.56888888888888888888888888888889  ;
		r[ 3] =  0.53846931010568309103631442070021  ;   w[ 3] =  0.47862867049936646804129151483564  ;
		r[ 4] =  0.90617984593866399279762687829939  ;   w[ 4] =  0.23692688505618908751426404071992  ;
		break;

	case 10:
	case 11:
		r.resize(6), w.resize(6);
		r[ 0] = -0.93246951420315202781230155449399  ;   w[ 0] =  0.17132449237917034504029614217273  ;
		r[ 1] = -0.66120938646626451366139959501991  ;   w[ 1] =  0.36076157304813860756983351383772  ;
		r[ 2] = -0.23861918608319690863050172168071  ;   w[ 2] =  0.46791393457269104738987034398955  ;
		r[ 3] =  0.23861918608319690863050172168071  ;   w[ 3] =  0.46791393457269104738987034398955  ;
		r[ 4] =  0.66120938646626451366139959501991  ;   w[ 4] =  0.36076157304813860756983351383772  ;
		r[ 5] =  0.93246951420315202781230155449399  ;   w[ 5] =  0.17132449237917034504029614217273  ;
		break;

	case 12:
	case 13:
		r.resize(7), w.resize(7);
		r[ 0] = -0.94910791234275852452618968404785  ;   w[ 0] =  0.12948496616886969327061143267908  ;
		r[ 1] = -0.74153118559939443986386477328079  ;   w[ 1] =  0.27970539148927666790146777142378  ;
		r[ 2] = -0.40584515137739716690660641207696  ;   w[ 2] =  0.38183005050511894495036977548898  ;
		r[ 3] =  0.0                                 ;   w[ 3] =  0.41795918367346938775510204081633  ;
		r[ 4] =  0.40584515137739716690660641207696  ;   w[ 4] =  0.38183005050511894495036977548898  ;
		r[ 5] =  0.74153118559939443986386477328079  ;   w[ 5] =  0.27970539148927666790146777142378  ;
		r[ 6] =  0.94910791234275852452618968404785  ;   w[ 6] =  0.12948496616886969327061143267908  ;
		break;

	case 14:
	case 15:
		r.resize(8), w.resize(8);
		r[ 0] = -0.96028985649753623168356086856947  ;   w[ 0] =  0.10122853629037625915253135430996  ;
		r[ 1] = -0.79666647741362673959155393647583  ;   w[ 1] =  0.22238103445337447054435599442624  ;
		r[ 2] = -0.52553240991632898581773904918925  ;   w[ 2] =  0.3137066458778872873379622019866   ;
		r[ 3] = -0.18343464249564980493947614236018  ;   w[ 3] =  0.3626837833783619829651504492772   ;
		r[ 4] =  0.18343464249564980493947614236018  ;   w[ 4] =  0.3626837833783619829651504492772   ;
		r[ 5] =  0.52553240991632898581773904918925  ;   w[ 5] =  0.3137066458778872873379622019866   ;
		r[ 6] =  0.79666647741362673959155393647583  ;   w[ 6] =  0.22238103445337447054435599442624  ;
		r[ 7] =  0.96028985649753623168356086856947  ;   w[ 7] =  0.10122853629037625915253135430996  ;
		break;

	case 16:
	case 17:
		r.resize(9), w.resize(9);
		r[ 0] = -0.96816023950762608983557620290367  ;   w[ 0] =  0.081274388361574411971892158110524 ;
		r[ 1] = -0.83603110732663579429942978806973  ;   w[ 1] =  0.18064816069485740405847203124291  ;
		r[ 2] = -0.61337143270059039730870203934147  ;   w[ 2] =  0.26061069640293546231874286941863  ;
		r[ 3] = -0.32425342340380892903853801464334  ;   w[ 3] =  0.31234707704000284006863040658444  ;
		r[ 4] =  0.0                                 ;   w[ 4] =  0.33023935500125976316452506928697  ;
		r[ 5] =  0.32425342340380892903853801464334  ;   w[ 5] =  0.31234707704000284006863040658444  ;
		r[ 6] =  0.61337143270059039730870203934147  ;   w[ 6] =  0.26061069640293546231874286941863  ;
		r[ 7] =  0.83603110732663579429942978806973  ;   w[ 7] =  0.18064816069485740405847203124291  ;
		r[ 8] =  0.96816023950762608983557620290367  ;   w[ 8] =  0.081274388361574411971892158110524 ;
		break;

	case 18:
	case 19:
		r.resize(10), w.resize(10);
		r[ 0] = -0.97390652851717172007796401208445  ;   w[ 0] =  0.066671344308688137593568809893332 ;
		r[ 1] = -0.86506336668898451073209668842349  ;   w[ 1] =  0.1494513491505805931457763396577   ;
		r[ 2] = -0.67940956829902440623432736511487  ;   w[ 2] =  0.21908636251598204399553493422816  ;
		r[ 3] = -0.43339539412924719079926594316578  ;   w[ 3] =  0.26926671930999635509122692156947  ;
		r[ 4] = -0.14887433898163121088482600112972  ;   w[ 4] =  0.29552422471475287017389299465134  ;
		r[ 5] =  0.14887433898163121088482600112972  ;   w[ 5] =  0.29552422471475287017389299465134  ;
		r[ 6] =  0.43339539412924719079926594316578  ;   w[ 6] =  0.26926671930999635509122692156947  ;
		r[ 7] =  0.67940956829902440623432736511487  ;   w[ 7] =  0.21908636251598204399553493422816  ;
		r[ 8] =  0.86506336668898451073209668842349  ;   w[ 8] =  0.1494513491505805931457763396577   ;
		r[ 9] =  0.97390652851717172007796401208445  ;   w[ 9] =  0.066671344308688137593568809893332 ;
		break;

	case 20:
	case 21:
		r.resize(11), w.resize(11);
		r[ 0]= -0.97822865814605699280393800112286  ;   w[ 0] =  0.055668567116173666482753720442549 ;
		r[ 1]= -0.88706259976809529907515776930393  ;   w[ 1] =  0.12558036946490462463469429922394  ;
		r[ 2]= -0.73015200557404932409341625203115  ;   w[ 2] =  0.18629021092773425142609764143166  ;
		r[ 3]= -0.51909612920681181592572566945861  ;   w[ 3] =  0.23319376459199047991852370484318  ;
		r[ 4]= -0.26954315595234497233153198540086  ;   w[ 4] =  0.26280454451024666218068886989051  ;
		r[ 5]=  0.0                                 ;   w[ 5] =  0.27292508677790063071448352833634  ;
		r[ 6]=  0.26954315595234497233153198540086  ;   w[ 6] =  0.26280454451024666218068886989051  ;
		r[ 7]=  0.51909612920681181592572566945861  ;   w[ 7] =  0.23319376459199047991852370484318  ;
		r[ 8]=  0.73015200557404932409341625203115  ;   w[ 8] =  0.18629021092773425142609764143166  ;
		r[ 9]=  0.88706259976809529907515776930393  ;   w[ 9] =  0.12558036946490462463469429922394  ;
		r[10]=  0.97822865814605699280393800112286  ;   w[10] =  0.055668567116173666482753720442549 ;
		break;

	case 22:
	case 23:
		r.resize(12), w.resize(12);
		r[ 0] = -0.98156063424671925069054909014928  ;   w[ 0] =  0.047175336386511827194615961485017 ;
		r[ 1] = -0.9041172563704748566784658661191   ;   w[ 1] =  0.106939325995318430960254718194    ;
		r[ 2] = -0.76990267419430468703689383321282  ;   w[ 2] =  0.16007832854334622633465252954336  ;
		r[ 3] = -0.58731795428661744729670241894053  ;   w[ 3] =  0.2031674267230659217490644558098   ;
		r[ 4] = -0.36783149899818019375269153664372  ;   w[ 4] =  0.23349253653835480876084989892488  ;
		r[ 5] = -0.12523340851146891547244136946385  ;   w[ 5] =  0.24914704581340278500056243604295  ;
		r[ 6] =  0.12523340851146891547244136946385  ;   w[ 6] =  0.24914704581340278500056243604295  ;
		r[ 7] =  0.36783149899818019375269153664372  ;   w[ 7] =  0.23349253653835480876084989892488  ;
		r[ 8] =  0.58731795428661744729670241894053  ;   w[ 8] =  0.2031674267230659217490644558098   ;
		r[ 9] =  0.76990267419430468703689383321282  ;   w[ 9] =  0.16007832854334622633465252954336  ;
		r[10] =  0.9041172563704748566784658661191   ;   w[10] =  0.106939325995318430960254718194    ;
		r[11] =  0.98156063424671925069054909014928  ;   w[11] =  0.047175336386511827194615961485017 ;
		break;

	case 24:
	case 25:
		r.resize(13), w.resize(13);
		r[ 0] = -0.98418305471858814947282944880711  ;   w[ 0] =  0.040484004765315879520021592200986 ;
		r[ 1] = -0.91759839922297796520654783650072  ;   w[ 1] =  0.092121499837728447914421775953797 ;
		r[ 2] = -0.80157809073330991279420648958286  ;   w[ 2] =  0.13887351021978723846360177686887  ;
		r[ 3] = -0.64234933944034022064398460699552  ;   w[ 3] =  0.1781459807619457382800466919961   ;
		r[ 4] = -0.44849275103644685287791285212764  ;   w[ 4] =  0.20781604753688850231252321930605  ;
		r[ 5] = -0.23045831595513479406552812109799  ;   w[ 5] =  0.22628318026289723841209018603978  ;
		r[ 6] =  0.0                                 ;   w[ 6] =  0.23255155323087391019458951526884  ;
		r[ 7] =  0.23045831595513479406552812109799  ;   w[ 7] =  0.22628318026289723841209018603978  ;
		r[ 8] =  0.44849275103644685287791285212764  ;   w[ 8] =  0.20781604753688850231252321930605  ;
		r[ 9] =  0.64234933944034022064398460699552  ;   w[ 9] =  0.1781459807619457382800466919961   ;
		r[10] =  0.80157809073330991279420648958286  ;   w[10] =  0.13887351021978723846360177686887  ;
		r[11] =  0.91759839922297796520654783650072  ;   w[11] =  0.092121499837728447914421775953797 ;
		r[12] =  0.98418305471858814947282944880711  ;   w[12] =  0.040484004765315879520021592200986 ;
		break;

	case 26:
	case 27:
		r.resize(14), w.resize(14);
		r[ 0] = -0.98628380869681233884159726670405  ;   w[ 0] =  0.035119460331751863031832876138192 ;
		r[ 1] = -0.92843488366357351733639113937787  ;   w[ 1] =  0.080158087159760209805633277062854 ;
		r[ 2] = -0.82720131506976499318979474265039  ;   w[ 2] =  0.12151857068790318468941480907248  ;
		r[ 3] = -0.68729290481168547014801980301933  ;   w[ 3] =  0.15720316715819353456960193862384  ;
		r[ 4] = -0.51524863635815409196529071855119  ;   w[ 4] =  0.18553839747793781374171659012516  ;
		r[ 5] = -0.31911236892788976043567182416848  ;   w[ 5] =  0.20519846372129560396592406566122  ;
		r[ 6] = -0.10805494870734366206624465021983  ;   w[ 6] =  0.21526385346315779019587644331626  ;
		r[ 7] =  0.10805494870734366206624465021983  ;   w[ 7] =  0.21526385346315779019587644331626  ;
		r[ 8] =  0.31911236892788976043567182416848  ;   w[ 8] =  0.20519846372129560396592406566122  ;
		r[ 9] =  0.51524863635815409196529071855119  ;   w[ 9] =  0.18553839747793781374171659012516  ;
		r[10] =  0.68729290481168547014801980301933  ;   w[10] =  0.15720316715819353456960193862384  ;
		r[11] =  0.82720131506976499318979474265039  ;   w[11] =  0.12151857068790318468941480907248  ;
		r[12] =  0.92843488366357351733639113937787  ;   w[12] =  0.080158087159760209805633277062854 ;
		r[13] =  0.98628380869681233884159726670405  ;   w[13] =  0.035119460331751863031832876138192 ;
		break;

	case 28:
	case 29:
		r.resize(15), w.resize(15);
		r[ 0] = -0.98799251802048542848956571858661  ;   w[ 0] =  0.030753241996117268354628393577204 ;
		r[ 1] = -0.93727339240070590430775894771021  ;   w[ 1] =  0.070366047488108124709267416450667 ;
		r[ 2] = -0.84820658341042721620064832077422  ;   w[ 2] =  0.10715922046717193501186954668587  ;
		r[ 3] = -0.72441773136017004741618605461394  ;   w[ 3] =  0.13957067792615431444780479451103  ;
		r[ 4] = -0.57097217260853884753722673725391  ;   w[ 4] =  0.16626920581699393355320086048121  ;
		r[ 5] = -0.39415134707756336989720737098105  ;   w[ 5] =  0.18616100001556221102680056186642  ;
		r[ 6] = -0.2011940939974345223006283033946   ;   w[ 6] =  0.19843148532711157645611832644384  ;
		r[ 7] =  0.0                                 ;   w[ 7] =  0.20257824192556127288062019996752  ;
		r[ 8] =  0.2011940939974345223006283033946   ;   w[ 8] =  0.19843148532711157645611832644384  ;
		r[ 9] =  0.39415134707756336989720737098105  ;   w[ 9] =  0.18616100001556221102680056186642  ;
		r[10] =  0.57097217260853884753722673725391  ;   w[10] =  0.16626920581699393355320086048121  ;
		r[11] =  0.72441773136017004741618605461394  ;   w[11] =  0.13957067792615431444780479451103  ;
		r[12] =  0.84820658341042721620064832077422  ;   w[12] =  0.10715922046717193501186954668587  ;
		r[13] =  0.93727339240070590430775894771021  ;   w[13] =  0.070366047488108124709267416450667 ;
		r[14] =  0.98799251802048542848956571858661  ;   w[14] =  0.030753241996117268354628393577204 ;
		break;

	case 30:
	case 31:
		r.resize(16), w.resize(16);
		r[ 0] = -0.98940093499164993259615417345033  ;   w[ 0] =  0.027152459411754094851780572456018 ;
		r[ 1] = -0.94457502307323257607798841553461  ;   w[ 1] =  0.062253523938647892862843836994378 ;
		r[ 2] = -0.86563120238783174388046789771239  ;   w[ 2] =  0.095158511682492784809925107602246 ;
		r[ 3] = -0.75540440835500303389510119484744  ;   w[ 3] =  0.12462897125553387205247628219202  ;
		r[ 4] = -0.61787624440264374844667176404879  ;   w[ 4] =  0.14959598881657673208150173054748  ;
		r[ 5] = -0.45801677765722738634241944298358  ;   w[ 5] =  0.16915651939500253818931207903036  ;
		r[ 6] = -0.2816035507792589132304605014605   ;   w[ 6] =  0.18260341504492358886676366796922  ;
		r[ 7] = -0.095012509837637440185319335424958 ;   w[ 7] =  0.18945061045506849628539672320828  ;
		r[ 8] =  0.095012509837637440185319335424958 ;   w[ 8] =  0.18945061045506849628539672320828  ;
		r[ 9] =  0.2816035507792589132304605014605   ;   w[ 9] =  0.18260341504492358886676366796922  ;
		r[10] =  0.45801677765722738634241944298358  ;   w[10] =  0.16915651939500253818931207903036  ;
		r[11] =  0.61787624440264374844667176404879  ;   w[11] =  0.14959598881657673208150173054748  ;
		r[12] =  0.75540440835500303389510119484744  ;   w[12] =  0.12462897125553387205247628219202  ;
		r[13] =  0.86563120238783174388046789771239  ;   w[13] =  0.095158511682492784809925107602246 ;
		r[14] =  0.94457502307323257607798841553461  ;   w[14] =  0.062253523938647892862843836994378 ;
		r[15] =  0.98940093499164993259615417345033  ;   w[15] =  0.027152459411754094851780572456018 ;
		break;

	case 32:
	case 33:
		r.resize(17), w.resize(17);
		r[ 0] = -0.99057547531441733567543401994067  ;   w[ 0] =  0.024148302868547931960110026287565 ;
		r[ 1] = -0.9506755217687677612227169578958   ;   w[ 1] =  0.055459529373987201129440165358245 ;
		r[ 2] = -0.88023915372698590212295569448816  ;   w[ 2] =  0.085036148317179180883535370191062 ;
		r[ 3] = -0.78151400389680140692523005552048  ;   w[ 3] =  0.11188384719340397109478838562636  ;
		r[ 4] = -0.657671159216690765850302216643    ;   w[ 4] =  0.13513636846852547328631998170235  ;
		r[ 5] = -0.51269053708647696788624656862955  ;   w[ 5] =  0.15404576107681028808143159480196  ;
		r[ 6] = -0.35123176345387631529718551709535  ;   w[ 6] =  0.16800410215645004450997066378832  ;
		r[ 7] = -0.17848418149584785585067749365407  ;   w[ 7] =  0.1765627053669926463252709901132   ;
		r[ 8] =  0.0                                 ;   w[ 8] =  0.17944647035620652545826564426189  ;
		r[ 9] =  0.17848418149584785585067749365407  ;   w[ 9] =  0.1765627053669926463252709901132   ;
		r[10] =  0.35123176345387631529718551709535  ;   w[10] =  0.16800410215645004450997066378832  ;
		r[11] =  0.51269053708647696788624656862955  ;   w[11] =  0.15404576107681028808143159480196  ;
		r[12] =  0.657671159216690765850302216643    ;   w[12] =  0.13513636846852547328631998170235  ;
		r[13] =  0.78151400389680140692523005552048  ;   w[13] =  0.11188384719340397109478838562636  ;
		r[14] =  0.88023915372698590212295569448816  ;   w[14] =  0.085036148317179180883535370191062 ;
		r[15] =  0.9506755217687677612227169578958   ;   w[15] =  0.055459529373987201129440165358245 ;
		r[16] =  0.99057547531441733567543401994067  ;   w[16] =  0.024148302868547931960110026287565 ;
		break;

	case 34:
	case 35:
		r.resize(18), w.resize(18);
		r[ 0] = -0.99156516842093094673001600470615  ;   w[ 0] =  0.021616013526483310313342710266452 ;
		r[ 1] = -0.95582394957139775518119589292978  ;   w[ 1] =  0.049714548894969796453334946202639 ;
		r[ 2] = -0.89260246649755573920606059112715  ;   w[ 2] =  0.076425730254889056529129677616637 ;
		r[ 3] = -0.80370495897252311568241745501459  ;   w[ 3] =  0.10094204410628716556281398492483  ;
		r[ 4] = -0.69168704306035320787489108128885  ;   w[ 4] =  0.1225552067114784601845191268002   ;
		r[ 5] = -0.55977083107394753460787154852533  ;   w[ 5] =  0.14064291467065065120473130375195  ;
		r[ 6] = -0.41175116146284264603593179383305  ;   w[ 6] =  0.15468467512626524492541800383637  ;
		r[ 7] = -0.25188622569150550958897285487791  ;   w[ 7] =  0.16427648374583272298605377646593  ;
		r[ 8] = -0.084775013041735301242261852935784 ;   w[ 8] =  0.16914238296314359184065647013499  ;
		r[ 9] =  0.084775013041735301242261852935784 ;   w[ 9] =  0.16914238296314359184065647013499  ;
		r[10] =  0.25188622569150550958897285487791  ;   w[10] =  0.16427648374583272298605377646593  ;
		r[11] =  0.41175116146284264603593179383305  ;   w[11] =  0.15468467512626524492541800383637  ;
		r[12] =  0.55977083107394753460787154852533  ;   w[12] =  0.14064291467065065120473130375195  ;
		r[13] =  0.69168704306035320787489108128885  ;   w[13] =  0.1225552067114784601845191268002   ;
		r[14] =  0.80370495897252311568241745501459  ;   w[14] =  0.10094204410628716556281398492483  ;
		r[15] =  0.89260246649755573920606059112715  ;   w[15] =  0.076425730254889056529129677616637 ;
		r[16] =  0.95582394957139775518119589292978  ;   w[16] =  0.049714548894969796453334946202639 ;
		r[17] =  0.99156516842093094673001600470615  ;   w[17] =  0.021616013526483310313342710266452 ;
		break;

	case 36:
	case 37:
		r.resize(19), w.resize(19);
		r[ 0] = -0.99240684384358440318901767025326  ;   w[ 0] =  0.019461788229726477036312041464438 ;
		r[ 1] = -0.96020815213483003085277884068765  ;   w[ 1] =  0.044814226765699600332838157401994 ;
		r[ 2] = -0.90315590361481790164266092853231  ;   w[ 2] =  0.069044542737641226580708258006013 ;
		r[ 3] = -0.82271465653714282497892248671271  ;   w[ 3] =  0.09149002162244999946446209412384  ;
		r[ 4] = -0.72096617733522937861709586082378  ;   w[ 4] =  0.11156664554733399471602390168177  ;
		r[ 5] = -0.60054530466168102346963816494624  ;   w[ 5] =  0.12875396253933622767551578485688  ;
		r[ 6] = -0.4645707413759609457172671481041   ;   w[ 6] =  0.1426067021736066117757461094419   ;
		r[ 7] = -0.31656409996362983199011732884984  ;   w[ 7] =  0.15276604206585966677885540089766  ;
		r[ 8] = -0.16035864564022537586809611574074  ;   w[ 8] =  0.15896884339395434764995643946505  ;
		r[ 9] =  0.0                                 ;   w[ 9] =  0.16105444984878369597916362532092  ;
		r[10] =  0.16035864564022537586809611574074  ;   w[10] =  0.15896884339395434764995643946505  ;
		r[11] =  0.31656409996362983199011732884984  ;   w[11] =  0.15276604206585966677885540089766  ;
		r[12] =  0.4645707413759609457172671481041   ;   w[12] =  0.1426067021736066117757461094419   ;
		r[13] =  0.60054530466168102346963816494624  ;   w[13] =  0.12875396253933622767551578485688  ;
		r[14] =  0.72096617733522937861709586082378  ;   w[14] =  0.11156664554733399471602390168177  ;
		r[15] =  0.82271465653714282497892248671271  ;   w[15] =  0.09149002162244999946446209412384  ;
		r[16] =  0.90315590361481790164266092853231  ;   w[16] =  0.069044542737641226580708258006013 ;
		r[17] =  0.96020815213483003085277884068765  ;   w[17] =  0.044814226765699600332838157401994 ;
		r[18] =  0.99240684384358440318901767025326  ;   w[18] =  0.019461788229726477036312041464438 ;
		break;

	case 38:
	case 39:
		r.resize(20), w.resize(20);
		r[ 0] = -0.99312859918509492478612238847132  ;   w[ 0] =  0.017614007139152118311861962351853 ;
		r[ 1] = -0.96397192727791379126766613119728  ;   w[ 1] =  0.040601429800386941331039952274932 ;
		r[ 2] = -0.9122344282513259058677524412033   ;   w[ 2] =  0.062672048334109063569506535187042 ;
		r[ 3] = -0.83911697182221882339452906170152  ;   w[ 3] =  0.083276741576704748724758143222046 ;
		r[ 4] = -0.74633190646015079261430507035564  ;   w[ 4] =  0.10193011981724043503675013548035  ;
		r[ 5] = -0.63605368072651502545283669622629  ;   w[ 5] =  0.11819453196151841731237737771138  ;
		r[ 6] = -0.51086700195082709800436405095525  ;   w[ 6] =  0.13168863844917662689849449974816  ;
		r[ 7] = -0.37370608871541956067254817702493  ;   w[ 7] =  0.14209610931838205132929832506716  ;
		r[ 8] = -0.22778585114164507808049619536857  ;   w[ 8] =  0.14917298647260374678782873700197  ;
		r[ 9] = -0.076526521133497333754640409398838 ;   w[ 9] =  0.1527533871307258506980843319551   ;
		r[10] =  0.076526521133497333754640409398838 ;   w[10] =  0.1527533871307258506980843319551   ;
		r[11] =  0.22778585114164507808049619536857  ;   w[11] =  0.14917298647260374678782873700197  ;
		r[12] =  0.37370608871541956067254817702493  ;   w[12] =  0.14209610931838205132929832506716  ;
		r[13] =  0.51086700195082709800436405095525  ;   w[13] =  0.13168863844917662689849449974816  ;
		r[14] =  0.63605368072651502545283669622629  ;   w[14] =  0.11819453196151841731237737771138  ;
		r[15] =  0.74633190646015079261430507035564  ;   w[15] =  0.10193011981724043503675013548035  ;
		r[16] =  0.83911697182221882339452906170152  ;   w[16] =  0.083276741576704748724758143222046 ;
		r[17] =  0.9122344282513259058677524412033   ;   w[17] =  0.062672048334109063569506535187042 ;
		r[18] =  0.96397192727791379126766613119728  ;   w[18] =  0.040601429800386941331039952274932 ;
		r[19] =  0.99312859918509492478612238847132  ;   w[19] =  0.017614007139152118311861962351853 ;
		break;

	default: return false;
	}
	return true;
}

int Line::maxorder()
{
	return 39;
}
